# In[]    必写代码
import os
filepath = os.getcwd()
os.chdir(filepath)

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']    #解决图像中文显示
mpl.rcParams['axes.unicode_minus'] = False    #解决保存图像负号显示为方框
# In[]    数据处理
import numpy as np
import pandas as pd
import matplotlib as mpl  #绘图
import matplotlib.pyplot as plt  #绘图
import pyecharts as pych    #百度开源可视化模块
import numpy.random as npr  #随机数
import datetime as dt
# In[]
import mpl_finance as mpf    #金融画图
import arch    #ARCH模型计算
import statsmodels as sm    #统计学计算库
# In[]    其他模块
import scrapy as ap    #爬虫框架
import scipy as sp  #符号数学工具
import scipy.interpolate as spi  #符号数学工具
import sympy as sy  #符号计算库
import sqlite3 as sq3    #导入SQLite3数据库
import pypinyin as pinyin    #汉字拼音转换模块

# In[1]:    爬虫
import requests
import json
import time
import fake_useragent as fu    #动态的浏览器标识
ua = fu.UserAgent()
header = {'User-Agent':ua.random }
import chardet    #网页编码检测
import pytesseract    #验证码识别模块
from bs4 import BeautifulSoup
'''
str_html = requests.get(url)
soup = BeautifulSoup(strhtml.text, 'lxml')
data = soup.select('#main>div>div.mtop.firstMod.clearfix>div.centerBox>ul.newsList>li>a')
'''
# In[]
#pip list 在shell显示已安装模块
np.random.seed(2000)
y = np.random.standard_normal((1000,4))

#绘图
plt.figure(figsize=(20,20))    #定义绘图区大小
#折线图
plt.subplot(221)    #定义坐标轴
plt.plot(y[:,0])
plt.grid(True)
plt.xlabel('')
plt.ylabel('')
plt.title('')
#散点图
plt.subplot(222)
plt.scatter(y[:,0],y[:,1],marker='o')
plt.grid(True)
plt.xlabel('')
plt.ylabel('')
plt.title('')
#三维颜色散点图
plt.subplot(223)
plt.scatter(y[:,0],y[:,1],c=y[:,2],marker='o')
plt.colorbar()
plt.grid(True)
plt.xlabel('')
plt.ylabel('')
plt.title('')
#直方图
plt.subplot(224)
plt.hist(y,label=['1st','2nd','3rd'],bins=12)
plt.grid(True)
plt.xlabel('')
plt.ylabel('')
plt.title('')

#绘箱型图概述数据集
fig, ax = plt.subplots(figsize=(10,10))    #定义绘图区大小
plt.boxplot(y)
plt.setp(ax, xticklabels=['1st','2nd','3rd'])
plt.grid(True)
plt.xlabel('')
plt.ylabel('')
plt.title('')

#绘制蜡烛图
'''
mpl_finance是python中可以用来画出蜡烛图、线图的分析工具，目前已经从matplotlib中独立出来。

函数接口说明
常用函数接口如下所示，函数命中的ochl分别对应open close high low，ax为plot的axes实例；其中quotes为（time，open,close,high,low，...）组成的序列。

candlestick2_ochl(ax,opens,closes,highs,lows,width=4,colorup='k',colordown='r',alpha=0.75)

candlestick2_ohlc(ax,opens,closes,highs,lows,width=4,colorup='k',colordown='r',alpha=0.75)

candlestick_ochl(ax,quotes,width=0.2,colorup='k',colordown='r',alpha=1.0)

candlestick_ohlc(ax,quotes,width=0.2,colorup='k',colordown='r',alpha=1.0)

plot_day_summary2_ochl(ax,opens,closes,highs,lows,ticksize=4,colorup='k',colordown='r')

plot_day_summary2_ohlc(ax,opens,highs,lows,closes,ticksize=4,colorup='k',colordown='r')

plot_day_summary_oclh(ax,quotes,ticksize=3,colorup='k',colordown='r')

plot_day_summary_ohlc(ax,quotes,ticksize=3,colorup='k',colordown='r')

volume_overlay(ax,opens,closes,volummes,colorup='k',colordown='r',width=4,alpha=1.0)

volume_overlay2(ax,closes,volumes,colorup='k',colordown='r',width=4,alpha=1.0)

volume_overlay3(ax,quotes,colorup='k',colordown='r',width=4,alpha=1.0)//目前这个函数使用起来貌似会存在问题，画出的柱状图高度一致，并没有体现数据的变化

'''
np.random.seed(2000)
y = np.random.standard_normal((30,4))
fig, ax = plt.subplots(figsize=(10,10))    #定义绘图区大小
mpf.candlestick2_ochl(ax,y[:,0],y[:,1],y[:,2],y[:,3],width=0.25,colorup='r',colordown='g',alpha=0.75)

